<?php

declare(strict_types=1);

namespace app\eslib;

use InvalidArgumentException;
use PhpOffice\PhpSpreadsheet\IOFactory;

/**
 * Excel 助手类
 * @version 1.0.0
 * 依赖: composer require phpoffice/phpspreadsheet (php 7.3+)
 * 仓库: https://github.com/PHPOffice/PhpSpreadsheet
 */
class EsExcel
{
    /**
     * 导入 excel 文件
     * @param  string $filename excel文件路径
     * @return array excel文件内容数组
     */
    static public function import($filename)
    {
        if (!$filename || !file_exists($filename)) {
            return EsUtils::stdMessage(false, '文件不存在! ' . $filename);
        }
        // 判断文件大小
        // 判断文件是什么格式
        $fileExt = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
        if (!in_array($fileExt, ['csv', 'xls', 'xlsx'])) {
            return EsUtils::stdMessage(false, '文件格式错误, 只支持csv,xls,xlsx格式的文件!');
        }
        ini_set('max_execution_time', '0');
        try {
            $spreadsheet = IOFactory::load($filename);
            return EsUtils::stdMessage(true, '', $spreadsheet->getActiveSheet()->toArray(null, true, true, true));
        } catch (InvalidArgumentException $e) {
            return EsUtils::stdMessage(false, $e->getMessage());
        }
    }

    
    // [PhpSpreadsheet设置单元格常用操作汇总](https://www.qb5200.com/article/238553.html)
    // [详解PhpOffice如何写一个漂亮的表格](https://www.php.cn/php-weizijiaocheng-469204.html)
    static public function export($data)
    {
        
    }
}
